//package cn.security.service;
//
//import org.springframework.security.core.authority.AuthorityUtils;
//import org.springframework.security.core.userdetails.User;
//import org.springframework.security.core.userdetails.UserDetails;
//import org.springframework.security.core.userdetails.UserDetailsService;
//import org.springframework.security.core.userdetails.UsernameNotFoundException;
//import org.springframework.security.crypto.bcrypt.BCrypt;
//import org.springframework.stereotype.Component;
//
//@Component // 由spring管理
//public class UserServiceImpl implements UserDetailsService {
//
//    /**
//     * 加载用户信息;<br/>
//     * 由于Security在进行验证时，会调用 UserDetailsService 中的 loadUserByUsername方法，此处只需要重写即可！
//     * @param s
//     * @return
//     * @throws UsernameNotFoundException
//     */
//    @Override
//    public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
//        // 需要返回  UserDetails 对象实例，
//        // 查看 UserDetails接口 下的几个子实现类，可以发现有几种类型
//        // 使用 org.springframework.security.core.userdetails.User 这个子类
//
//        // 无加密
////        UserDetails userDetails = new User("xiangjiao","{noop}bunana",
////                AuthorityUtils.commaSeparatedStringToAuthorityList("add,rm"));
//
//        // 有加密
//        String encryptPwd = BCrypt.hashpw("bunana",BCrypt.gensalt());
//        UserDetails userDetails = new User("xiangjiao","{bcrypt}"+encryptPwd,
//                AuthorityUtils.commaSeparatedStringToAuthorityList("add,rm"));
//
//        return userDetails;
//    }
//}
